package com.cxt.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 行程信息表
 * </p>
 *
 * @author baomidou
 * @since 2025-02-27
 */
@TableName("trip_info")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TripInfo implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 行程信息ID
     */
    private Long id;
    /**
     * 拼车信息ID
     */
    private Long carpoolInfoId;
    /**
     * 团长ID
     */
    private Long groupLeaderId;
    /**
     * 司机ID
     */
    private Long driverId;
    /**
     * 组员IDs（用逗号隔开）
     */
    private String memberIds;
    /**
     * 途径点IDs（用逗号隔开）
     */
    private String waypointIds;
    /**
     * 已经过途径点IDs（用逗号隔开）
     */
    private String passedWaypoints;
    /**
     * 行程状态（1: 待开始, 2: 进行中, 3: 已结束）
     */
    private Integer tripStatus;
    /**
     * 预计开始时间
     */
    private LocalDateTime estimatedStartTime;
    /**
     * 实际开始时间
     */
    private LocalDateTime startTime;

    /**
     * 实际结束时间
     */
    private LocalDateTime endTime;

    /**
     * 已行驶距离（单位：公里）
     */
    private BigDecimal traveledDistance;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 创建用户
     */
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 修改用户
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;
}